home *** CD-ROM | disk | FTP | other *** search
- Path: news.larc.nasa.gov!amiga-request
- From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
- Subject: v91i099: MSClock 1.3 - yet another clock utility, Part01/01
- Reply-To: stefanb@cip-s01.informatik.rwth-aachen.de (Stefan Becker)
- Newsgroups: comp.sources.amiga
- Message-ID: <comp.sources.amiga:v91i099@ab20.larc.nasa.gov>
- Date: 08 May 91 00:24:58 GMT
- Approved: tadguy@uunet.UU.NET (Tad Guy)
- X-Mail-Submissions-To: amiga@uunet.uu.net
- X-Post-Discussions-To: comp.sys.amiga.misc
-
- Submitted-by: stefanb@cip-s01.informatik.rwth-aachen.de (Stefan Becker)
- Posting-number: Volume 91, Issue 099
- Archive-name: utilities/msclock-1.3/part01
-
- [ includes uuencoded executable and handler ...tad ]
-
- Yet another clock utility, nobody has been waiting for.
- MSClock recognizes overscan-workbenches and displays memory, date, time and
- online time (if connected to another computer via modem).
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 1)."
- # Contents: MSClock1_3.doc c c/MSClock.uu l l/MSClock-Han.uu source
- # source/MSClock-Handler.c source/MSClock.c source/makefile
- # Wrapped by tadguy@ab20 on Tue May 7 20:24:57 1991
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'MSClock1_3.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MSClock1_3.doc'\"
- else
- echo shar: Extracting \"'MSClock1_3.doc'\" \(949 characters\)
- sed "s/^X//" >'MSClock1_3.doc' <<'END_OF_FILE'
- XMSClock V1.3 (c) 12.02.91 by Martin Steppler
- X
- XYet another clock utility, nobody has been waiting for.
- XMSClock recognizes overscan-workbenches and displays memory, date, time and
- Xonline time (if connected to another computer via modem).
- XThat's all. If it's not enough for you, enhance it by yourself!
- XFeel free to use, copy or destroy it!
- X
- XUSAGE: MSClock [-t] [-d] [-m] [-e] [-r] [-q] [quit] [h]
- X
- X -t time off/on default: on
- X -d date off/on default: on
- X -m memory off/on default: on
- X -o online time off/on default: on
- X -e English weekdays on/off default: German on
- X -r reverse date display on/off default: off
- X -q quit MSClock
- X quit
- X h or any other key: help
- X
- XBye, Martin.
- X
- XInterNet: steppler@cip-s01.informatik.rwth-aachen.de
- XFidoNet: Martin Steppler @ 2:242/7.12
- XPhone: +47-(0)241-158579
- END_OF_FILE
- if test 949 -ne `wc -c <'MSClock1_3.doc'`; then
- echo shar: \"'MSClock1_3.doc'\" unpacked with wrong size!
- fi
- # end of 'MSClock1_3.doc'
- fi
- if test ! -d 'c' ; then
- echo shar: Creating directory \"'c'\"
- mkdir 'c'
- fi
- if test -f 'c/MSClock.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'c/MSClock.uu'\"
- else
- echo shar: Extracting \"'c/MSClock.uu'\" \(8630 characters\)
- sed "s/^X//" >'c/MSClock.uu' <<'END_OF_FILE'
- Xbegin 666 MSClock
- XM```#\P`````````#``````````(```7E0```'`````$```/I```%Y4[Z$&I.H
- XM50``2.<``'``3-\``$Y=3G5.5?_@2.<`()/)+&R`#DZN_MHD0"M\````)__\A
- XM0JW_]$*M__`K0O_H)#P```/M0?H($B((+&R`$DZN_^(D+?_H*T#_['``0_H'L
- XM_"QL@`Y.KOW8*4"`%F<`!Z9P`$/Z!_@L;(`.3J[]V"E`@!IG``>00_H'\"QLV
- XM@`Y.KOYZ*4"`'F<```P@;(`>*V@`/O_\*WP````!__A@```&4JW_^"`M__BPA
- XMK0`(;``!_DAZ!\H@+?_XY8`@;0`,+S`(`$ZZ#W103TJ`9P``($AZ![$@+?_X5
- XMY8`@;0`,+S`(`$ZZ#U903TJ`9@``#BM\`````?_T8``!MDAZ!XH@+?_XY8`@]
- XM;0`,+S`(`$ZZ#RQ03TJ`9@``*@@M``#__V<``!`@+?_\`H`````^8```"B`M%
- XM__P(P```*T#__&```6Q(>@='("W_^.6`(&T`#"\P"`!.N@[F4$]*@&8``"H(L
- XM+0`!__]G```0("W__`*`````/6````H@+?_\",```2M`__Q@``$F2'H'!"`ML
- XM__CE@"!M``PO,`@`3KH.H%!/2H!F```J""T``O__9P``$"`M__P"@````#M@<
- XM```*("W__`C```(K0/_\8```X$AZ!L$@+?_XY8`@;0`,+S`(`$ZZ#EI03TJ`-
- XM9@``*@@M``/__V<``!`@+?_\`H`````W8```"B`M__P(P``#*T#__&```)I(C
- XM>@9^("W_^.6`(&T`#"\P"`!.N@X44$]*@&8``"H(+0`$__]G```0("W__`*`"
- XM````+V````H@+?_\",``!"M`__Q@``!42'H&.R`M__CE@"!M``PO,`@`3KH-(
- XMSE!/2H!F```J""T`!?__9P``$"`M__P"@````!]@```*("W__`C```4K0/_\$
- XM8```#BM\`````?_P8```!F``_?9*K?_P9P`!B$JM_^QG``&`2.T`#/_D2'H&*
- XM!DZZ$J!83R8`0?H%QB0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H&1DZZ0
- XM$G983R8`0?H&!"0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H&BDZZ$DQ81
- XM3R8`0?H&1B0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H&T$ZZ$B)83R8`$
- XM0?H&C"0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'%DZZ$?A83R8`0?H&R
- XMTB0((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'7$ZZ$<Y83R8`0?H'&"0(8
- XM(BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'J4ZZ$:183R8`0?H'7B0((BW_1
- XM["QL@!).KO_03.T`#/_D2.T`#/_D2'H']TZZ$7I83R8`0?H'LB0((BW_["QL_
- XM@!).KO_03.T`#/_D2.T`#/_D2'H((DZZ$5!83R8`0?H'^B0((BW_["QL@!).E
- XMKO_03.T`#/_D8``#S$JL@!YF``)V2JW_]&8``FXB/``!``%P2BQL@`Y.KO\Z[
- XM*4"`'F<``E(@;(`>$7P``@`.(&R`'D(H``D@;(`>$7P`!``(<@%P%"QL@`Y.4
- XMKO\Z(&R`'B%```H@;(`>0J@`+B!L@!XA2@`J(&R`'B%\````2@`F+RW__$ZZ3
- XM"K983R!L@!XA0``V3KH+&"!L@!Z0J``V(&R`'B%``#(@;(`>0J@`.B!L@!XA!
- XM;?_\`#X@;(`>(6W__`!"2'H'="!L@!XO*``*3KH0CE!/(&R`'M'\````%"\(J
- XM3KH0:EA/0?H'9"((+&R`$DZN_VH@;(`>(4``(F8``!A!^@=:(@@L;(`23J[_>
- XM:B!L@!XA0``B(&R`'DJH`")F``!><!0@;(`>(F@`"BQL@`Y.KO\N(&R`'B`H<
- XM`"8B;(`>+&R`#DZN_RY*K?_L9P``+$CM``S_Y$AZ!W!.N@_>6$\F`$'Z!QXDY
- XM""(M_^PL;(`23J[_T$SM``S_Y&```0@B;(`>+&R`#DZN_IY([0`<_^`H/```&
- XM$``@;(`>)B@`(G0%0?H';"((+&R`$DZN_W9,[0`<_^`@/```(``L;(`.3J[^F
- XMPB!L@!Y*J``N9@``AB)L@!XL;(`.3J[^F'`4(&R`'B)H``HL;(`.3J[_+B!LY
- XM@!Y*J``B9P``$B!L@!XB*``B+&R`$DZN_V0@;(`>("@`)B)L@!XL;(`.3J[_O
- XM+DJM_^QG```L2.T`#/_D2'H'2TZZ#PI83R8`0?H&^20((BW_["QL@!).KO_0>
- XM3.T`#/_D8```-$JM_^QG```L2.T`#/_D2'H'HDZZ#M183R8`0?H'3R0((BW_"
- XM["QL@!).KO_03.T`#/_D8``!4$JL@!YG``#D2JW_]&<``-P@;(`>(4H`*B`\A
- XM```@`"!L@!XB:``N+&R`#DZN_KP@/```(``L;(`.3J[^PB)L@!XL;(`.3J[^(
- XMF'`4(&R`'B)H``HL;(`.3J[_+B!L@!Y*J``B9P``$B!L@!XB*``B+&R`$DZN<
- XM_V0@;(`>("@`)B)L@!XL;(`.3J[_+DJM_^QG``!62.T`#/_D2'H'@TZZ#A18'
- XM3R8`0?H',20((BW_["QL@!).KO_03.T`#/_D2.T`#/_D2'H'QTZZ#>I83R8`K
- XM0?H'DR0((BW_["QL@!).KO_03.T`#/_D8```9DJL@!YG``!>(&R`'B%M__P`J
- XM0B\M__Q.N@>R6$\@;(`>(4``-DZZ"!0@;(`>D*@`-B!L@!XA0``R(&R`'B%*0
- XM`"H@/```$``@;(`>(F@`+BQL@`Y.KOZ\(#P``"``+&R`#DZN_L)*K?_L9P``[
- XM#B(M_^PL;(`23J[_W$JL@!9G```.(FR`%BQL@`Y.KOYB2JR`&F<```XB;(`:=
- XM+&R`#DZN_F),WP0`3EU.=2H`:6YT=6ET:6]N+FQI8G)A<GD`9&]S+FQI8G)A-
- XM<GD`36%R=&EN)W,@0VQO8VLM4&]R=`!Q=6ET`"UQ`"UT`"UD`"UM`"UE`"URL
- XM`"UO`!M;,6U-4T-L;V-K(%8Q+C,;6S!M(*D@,3(N,#(N.3$@8GD@36%R=&EN1
- XM(%-T97!P;&5R"@`;6S%M35-#;&]C:R!6,2XS&ULP;2"I(#$R+C`R+CDQ(&)YC
- XM($UA<G1I;B!3=&5P<&QE<@H`55-!1T4Z("!-4T-L;V-K(%LM=%T@6RUD72!;<
- XM+6U=(%LM95T@6RUR72!;+7%=(%MQ=6ET70H`55-!1T4Z("!-4T-L;V-K(%LM6
- XM=%T@6RUD72!;+6U=(%LM95T@6RUR72!;+7%=(%MQ=6ET70H`("`@("`@("`M5
- XM="`@("!T:6UE("`@;V9F+V]N("`@("`@("`@("`@("`@(&1E9F%U;'0Z(&]NF
- XM"@`@("`@("`@("UT("`@('1I;64@("!O9F8O;VX@("`@("`@("`@("`@("`@!
- XM9&5F875L=#H@;VX*`"`@("`@("`@+60@("`@9&%T92`@(&]F9B]O;B`@("`@<
- XM("`@("`@("`@("!D969A=6QT.B!O;@H`("`@("`@("`M9"`@("!D871E("`@5
- XM;V9F+V]N("`@("`@("`@("`@("`@(&1E9F%U;'0Z(&]N"@`@("`@("`@("UM'
- XM("`@(&UE;6]R>2!O9F8O;VX@("`@("`@("`@("`@("`@9&5F875L=#H@;VX*F
- XM`"`@("`@("`@+6T@("`@;65M;W)Y(&]F9B]O;B`@("`@("`@("`@("`@("!D^
- XM969A=6QT.B!O;@H`("`@("`@("`M;R`@("!O;FQI;F4@=&EM92!O9F8O;VX@Y
- XM("`@("`@("`@(&1E9F%U;'0Z(&]N"@`@("`@("`@("UO("`@(&]N;&EN92!T;
- XM:6UE(&]F9B]O;B`@("`@("`@("`@9&5F875L=#H@;VX*`"`@("`@("`@+64@:
- XM("`@16YG;&ES:"!W965K9&%Y<R!O;B]O9F8@("`@("!D969A=6QT.B!'97)M8
- XM86X@;VX*`"`@("`@("`@+64@("`@16YG;&ES:"!W965K9&%Y<R!O;B]O9F8@V
- XM("`@("!D969A=6QT.B!'97)M86X@;VX*`"`@("`@("`@+7(@("`@<F5V97)SV
- XM92!D871E(&1I<W!L87D@;VXO;V9F("!D969A=6QT.B!O9F8*`"`@("`@("`@D
- XM+7(@("`@<F5V97)S92!D871E(&1I<W!L87D@;VXO;V9F("!D969A=6QT.B!O$
- XM9F8*`"`@("`@("`@+7$@("`@<75I="!-4T-L;V-K"@`@("`@("`@("UQ("`@K
- XM('%U:70@35-#;&]C:PH`36%R=&EN)W,@0VQO8VLM4&]R=`!-87)T:6XG<R!#D
- XM;&]C:RU0;W)T`$U30VQO8VLM2&%N9&QE<@!,.DU30VQO8VLM2&%N9&QE<@!-\
- XM87)T:6XG<R!#;&]C:RU0;W)T`$EN<W1A;&QA=&EO;B!O9B`;6S%M36%R=&EN<
- XM(%-T97!P;&5R)W,@0VQO8VL;6S!M(&9A:6QE9"X@1&]N)W0@<&%N:6,A"@!)6
- XM;G-T86QL871I;VX@;V8@&ULQ;4UA<G1I;B!3=&5P<&QE<B=S($-L;V-K&ULPX
- XM;2!F86EL960N($1O;B=T('!A;FEC(0H`36%R=&EN)W,@0VQO8VL`36%R=&EN.
- XM)W,@0VQO8VLM4&]R=`!);G-T86QL871I;VX@;V8@&ULQ;4UA<G1I;B!3=&5PZ
- XM<&QE<B=S($-L;V-K&ULP;2!F86EL960N($1O;B=T('!A;FEC(0H`26YS=&%L\
- XM;&%T:6]N(&]F(!M;,6U-87)T:6X@4W1E<'!L97(G<R!#;&]C:QM;,&T@9F%I3
- XM;&5D+B!$;VXG="!P86YI8R$*`$ET(&ES(&UY('!L96%S=7)E('1O(&EN<W1A7
- XM;&P@&ULQ;4UA<G1I;B!3=&5P<&QE<B=S($-L;V-K&ULP;2!F;W(@>6]U(0H`N
- XM270@:7,@;7D@<&QE87-U<F4@=&\@:6YS=&%L;"`;6S%M36%R=&EN(%-T97!PE
- XM;&5R)W,@0VQO8VL;6S!M(&9O<B!Y;W4A"@!-87)T:6XG<R!#;&]C:RU0;W)TN
- XM`$ET(&ES(&UY('-A=&ES9F%C=&EO;B!T;R!C;&]S92`;6S%M36%R=&EN(%-TF
- XM97!P;&5R)W,@0VQO8VL;6S!M(&%G86EN"@!)="!I<R!M>2!S871I<V9A8W1IU
- XM;VX@=&\@8VQO<V4@&ULQ;4UA<G1I;B!3=&5P<&QE<B=S($-L;V-K&ULP;2!A>
- XM9V%I;@H`=VET:"!T:&4@:VYO=VQE9&=E(&]F(&$@:F]B('=E;&P@9&]N92$*\
- XM`'=I=&@@=&AE(&MN;W=L961G92!O9B!A(&IO8B!W96QL(&1O;F4A"@``3E7_U
- XM_$CG``!"K?_\""T````+9P``"@:M````4/_\""T``0`+9P``"@:M````</_\4
- XM""T``@`+9P``"@:M````F/_\""T`!0`+9P``"@:M````4/_\2JW__&8```HKZ
- XM?````%#__"`M__Q,WP``3EU.=4Y5``!(YR`@<``L;(`63J[^8B0`(&R`%B1H&
- XM`#P@0BQL@!9.KOY<<``P*@`4`H`````/#(`````!9@``%C`J``Q(P`2`````,
- XM/DS?!`1.74YU)%(@"F;0(#P```)"8.I,[P,```2SR&<,<``0&+`95LC_^F8$Q
- XM<`!.=6,$<`%.=7#_3G5A<$/L@`Y%[(`.M<EF#C(\`!AK"'0`(L)1R?_\*4^`=
- XM(BQX``0I3H`.2.>`@`@N``0!*6<02_H`"$ZN_^)@!D*G\U].<T/Z`"!.KOYHD
- XM*4"`$F8,+CP``X`'3J[_E&`$3KH`&E!/3G5D;W,N;&EB<F%R>0!)^0``?_Y..
- XM=4CG`#`F;P`0+PXB/``!```P+(`"+P%(P"(`XXC0@>.((A\L;(`.3J[_.BQ?;
- XM*4"`)F8>2.<!!IO-+CP``0``+&R`#DZN_Y1,WV"`+FR`(DYU(&R`)D)H``0@;
- XM;(`F,7P``0`0(&R`)C%\``$`"B!L@"(@+(`BD*@`!%"`*4"`*B!L@"H@O$U!5
- XM3E@O#I/)+&R`#DZN_MHL7R1`2JH`K&<R+PLO+P`0+PI.N@#L*7P````!@"X@J
- XM;(`F6(@`4(``(&R`)M'\````"@!0@`!/[P`,8%8O#D'J`%PL;(`.3J[^@"Q?*
- XM+PY!Z@!<+&R`#DZN_HPL7RE`@#(@;(`R2J@`)&<B+PX@;(`R(&@`)"(0+&R`D
- XM$DZN_X(L7R\L@#(O"DZZ`EI03REL@#*`-B\.+&R`$DZN_\HL7R!L@"8@@"\.F
- XM+&R`$DZN_\0L7R!L@"8A0``&2JH`I&<D2.<@`B0\```#[4'Z`#0B""QL@!).B
- XMKO_B3-]`!"!L@"8A0``,+RR`-B\L@#I.NNVP4$\O`$ZZ`SQ83TS?#`!.=2H`(
- XM2.<X,B8O`!PH+P`@)F\`)"!#2J@`K&<4($,@*`"LY8`L0"`N`!#E@"1`8`0D-
- XM;(`$$!)(@$C`T(14@"E`@#XO#G(`("R`/BQL@`Y.KO\Z+%\I0(!"9@9,WTP<Z
- XM3G40$DB`2,`D`"\"0>H``2\(+RR`0DZZ`EQ(>@%&($+1[(!"+PA.N@*@+P0O=
- XM"R\L@$).N@$P(&R`0D(P*``I?`````&`.B1"U>R`0E**)DI/[P`@$!)(@$C`N
- XM)``,@````"!G(`R"````"6<8#((````,9Q`,@@````UG"`R"````"F8$4HI@&
- XMS`P2`"!M=@P2`")F*E**$!I(@$C`)`!G'!;"#((````B9A`,$@`B9@12BF`&D
- XM0BO__V`"8-I@.!`:2(!(P"0`9RP,@@```"!G)`R"````"6<<#((````,9Q0,$
- XM@@````UG#`R"````"F<$%L)@RD(;2H)F`E.*4JR`.F``_U)"$R\.<@`@+(`ZH
- XMY8!8@"QL@`Y.KO\Z+%\I0(`V9@A"K(`Z8`#^U'0`)&R`0F`:(`+E@"!L@#8AT
- XMB@@`+PI.N@%BU<!2BEA/4H*TK(`Z;>`@`N6`(&R`-D*P"`!@`/Z<(`!,[P,`D
- XM``0@""(O``Q*&&;\4X@0V5?)__P$@0`!``!J\D(@3G5(YS@R)F\`'"@O`"`OC
- XM#G``0_H`Q"QL@`Y.KOW8+%\I0(!&9@9,WTP<3G4O#B!$(&@`)"!H``0L;(!&I
- XM3J[_LBQ?)$!*@&=X+PY#^@"9(&H`-BQL@$9.KO^@+%\L0$J`9U!(YR`")#P`Z
- XM``/M(B\`!"QL@!).KO_B3-]`!"8`9S(@`^6`)``@0B=H``@`I"=#`)Q(YR`":
- XM)#P```/M0?H`3B((+&R`$DZN_^),WT`$)T``H"\.($HL;(!&3J[_IBQ?+PXB0
- XM;(!&+&R`#DZN_F(L7T*L@$9@`/]0:6-O;BYL:6)R87)Y`%=)3D1/5P`J`$SOK
- XM`P``!"`((B\`#&`"$-E7R?_\9PP$@0`!``!J\$YU0AA1R?_\!($``0``:O).G
- XM=2!O``0@"$H89OQ32)'`(`A.=2!O``0@B%B00J@`!"%(``A.=4SO`P``!"`(Z
- XM$-EF_$YU2JR`2F<4(&R`2B!H``1.D"!L@$HI4(!*8.9*K(!.9P8@;(!.3I`O`
- XM+P`$3KH`!EA/3G5(YS``)B\`#$JL@"9G-'0`8`HO`DZZ`4I83U*",&R``K'"0
- XM;NXO#C`L@`)(P"(`XXC0@>.((FR`)BQL@`Y.KO\N+%]*K(!29P8@;(!23I!*1
- XMK(`(9Q`O#B(L@`@L;(`23J[_IBQ?2JR`5F<((&R`5B"L@%I*K(!>9Q`O#B)LM
- XM@%XL;(`.3J[^8BQ?2JR`8F<0+PXB;(!B+&R`#DZN_F(L7TJL@&9G$"\.(FR`2
- XM9BQL@`Y.KOYB+%]*K(!J9Q`O#B)L@&HL;(`.3J[^8BQ?2.<`!BQX``0(+@`$C
- XM`2EG$$OZ``A.KO_B8`9"I_-?3G,J7TJL@#)F-$JL@$)G+"\.("R`/B)L@$(L&
- XM;(`.3J[_+BQ?+PX@+(`ZY8!8@")L@#8L;(`.3J[_+BQ?8!PO#BQL@`Y.KO]\B
- XM+%\O#B)L@#(L;(`.3J[^ABQ?+PXB;(`2+&R`#DZN_F(L7R`#+FR`(DYU3-\`P
- XM#$YU2.<@("0O``P@`B(`XXC0@>.()$#5[(`F2H)M##!L@`*QPF\$2I)F$"E\3
- XM`````X!N</],WP0$3G4P*@`$`D"``&8.+PXB$BQL@!).KO_<+%]"DG``8-P`G
- XM`````^P````!`````0``$.`````````#\@```^H````#`!0`````````````:
- X0```#\@```^L````!```#\N``Y
- X``
- Xend
- Xsize 6136
- END_OF_FILE
- if test 8630 -ne `wc -c <'c/MSClock.uu'`; then
- echo shar: \"'c/MSClock.uu'\" unpacked with wrong size!
- fi
- # end of 'c/MSClock.uu'
- fi
- if test ! -d 'l' ; then
- echo shar: Creating directory \"'l'\"
- mkdir 'l'
- fi
- if test -f 'l/MSClock-Han.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'l/MSClock-Han.uu'\"
- else
- echo shar: Extracting \"'l/MSClock-Han.uu'\" \(12674 characters\)
- sed "s/^X//" >'l/MSClock-Han.uu' <<'END_OF_FILE'
- Xbegin 666 MSClock-Handler
- XM```#\P`````````#``````````(```:L0```U$```#,```/I```&K$[Z"91TK
- XM;W!A>BYF;VYT``!.5?]02.<(()/)+'D````\3J[^VB1`0>W_C$/Y````5'`-C
- XM(-E1R/_\0JW_8$*M_UQ"K?]8*WS______U1*J@"L9P``#'`*3-\$$$Y=3G5#>
- XM^0``"$PL>0```#Q.KOYZ(\````!`9@``!G`*8-IP`$/Y```(8"QY````/$ZN6
- XM_=@CP````$1F```@(#P``"``('D```!`(F@`*BQY````/$ZN_KQP%&"@<`!#9
- XM^0``"'(L>0```#Q.KOW8(\````!(9@``,B)Y````1"QY````/$ZN_F(@/```@
- XM(``@>0```$`B:``J+'D````\3J[^O'`48`#_5G``0_D```B#+'D````\3J[].
- XMV"/`````3&8``$(B>0```$@L>0```#Q.KOYB(GD```!$+'D````\3J[^8B`\'
- XM```@`"!Y````0")H`"HL>0```#Q.KOZ\<!1@`/[Z0J=(>0``"(].N0``"J10F
- XM3R/`````4&<``')R`$'Y````4")(<`%!^0``")HL>0```#Q.KOY$2H!F``!&C
- XM(_D```!0````7C/\``D```!L0CD```!N0CD```!O0KD```!P(_P`#T)`````<
- XM=$'Y````4")(+'D````\3J[^,F````A.N0``"1)@```(3KD```D2D\DL>0``*
- XM`#Q.KO[:('D```!`(4``+B!Y````0"%\`````0!&('D```!`#*@````!`$9FO
- XM``"4('D```!`(7P````"`$8@>0```$`SZ``T````'"!Y````0#/H`#@````@B
- XM0?D````<+'D```!$3J[_-"/`````3&<``#`@>0```$P@:`"`#&@`"``48P``4
- XM#D'Y`````"/(````$"!Y````0$*H`$9@```(3KD```D2(#P``"``('D```!`K
- XM(F@`*BQY````/$ZN_KP@>0```$!*J`!&9@`$*G("+'D````\3J[_*'(*XJ`K1
- XM0/]H<@0L>0```#Q.KO\H<@KBH"M`_V1![?^`(@@L>0```'A.KO]`("W_@`2`L
- XM```(RRM`_WP@+?]\Y8!6@"(\```%M4ZY```3UBM`_VP@+?]L(CP```6U3KD`Q
- XM``J`<@1.N0``$]:1K?]\!JT```?`_VP@+?]\(@#EB-"!5(`B/````)E.N0``(
- XM$]8K0/]T("W_="(\````F4ZY```*@%2`<@5.N0``$]8B+?]\DH!2@2M!_W!6J
- XMK?]T('D```!`*V@`/O]\#*T````,_W1O```.4JW_;`2M````#/]T0CD`````/
- XM""T``O]_9P``*B\M_V@O+?]D("W_:-"M_V0O`$AY```(ITAY`````$ZY```*-
- XM'$_O`!0(+0`%_W]G``#*<``0.0"_T``(```%9@``?B!Y````0$JH`#IF```<7
- XM0JW_6$*M_UQ"K?]@('D```!`(7P````!`#H@+?^(<C).N0``$]:PK?]49P``.
- XM/B`M_XAR,DZY```3UBM`_U12K?]8#*T````\_UAF```>0JW_6%*M_UP,K0``C
- XM`#S_7&8```I"K?]<4JW_8&````P@>0```$!"J``Z+RW_6"\M_UPO+?]@2'D`^
- XM``B\2&W_Q$ZY```*'$_O`!1(;?_$2'D`````3KD```IL4$\(+0`!_W]G``&P<
- XM""T``_]_9P``"'`'8```!'``*T#_>`@M``3_?V<``,(@;?]L2&CXE"\M_W`O@
- XM+?]T("W_;`RM`````_]T;```"'(!8```!'(`D(%R!$ZY```3UB\`("W_="(`,
- XMXXC0@2(?TH`@`="M_W#0K?]L#*T````"_W1O```(<@%@```$<@#2@9"!+P`@E
- XM+?]T4X`,K0````C_=&\```AR`6````1R`)"!<@).N0``$]8B'Y*`(`%4@'('=
- XM3KD``!/^T*W_>.6`0>W_C"\P"`!(>0``"-!(;?_$3KD```H<3^\`&&```+X@C
- XM;?]L2&CXE"\M_W0O+?]P("W_;`RM`````_]T;```"'(!8```!'(`D(%R!$ZY@
- XM```3UB\`("W_="(`XXC0@2(?TH`@`="M_W#0K?]L#*T````"_W1O```(<@%@V
- XM```$<@#2@9"!+P`@+?]T4X`,K0````C_=&\```AR`6````1R`)"!<@).N0``<
- XM$]8B'Y*`(`%4@'('3KD``!/^T*W_>.6`0>W_C"\P"`!(>0``".=(;?_$3KD`J
- XM``H<3^\`&$AM_\1(>0````!.N0``"FQ03P@M``#_?V<``%(@+?^(<C).N0``\
- XM$]8O`"`M_X1R/$ZY```3_B\`("W_A'(\3KD``!/6+P!(>0``"/Y(;?_$3KD``
- XM``H<3^\`%$AM_\1(>0````!.N0``"FQ03W(`<`!!^0````@B2"!Y````3"!H(
- XM`#(L>0```$1.KO\H('D```!0<``0*``/<@'AH0"!```P`"`!+'D````\3J[^`
- XMPB@`"`0`#6<``&).N0``"1(B>0```$0L>0```#Q.KOYB(GD```!(+'D````\.
- XM3J[^8B)Y````3"QY````/$ZN_F(L>0```#Q.KO]\(#P``"``('D```!`(F@`W
- XM*BQY````/$ZN_KQP`&``^.`(!``,9P``0DJY````3&<``!@@>0```$PL>0``"
- XM`$1.KO^X0KD```!,('D```!`(GD```!`(V@`0@`^('D```!`(7P````!`$8@:
- XM>0```%!P`!`H``]R`>&A(`3`@6<``#H@>0```%`L>0```#Q.KOZ,2H!G```D@
- XM0KD```!P(_P`#T)`````=$'Y````4")(+'D````\3J[^,F``^@!3;VX`36]N$
- XM`$1I90!-:70`1&]N`$9R90!386T`4W5N`$UO;@!4=64`5V5D`%1H=0!&<FD`;
- XM4V%T`$UA<G1I;B=S($-L;V-K+5!O<G0`:6YT=6ET:6]N+FQI8G)A<GD`9W)A+
- XM<&AI8W,N;&EB<F%R>0!D;W,N;&EB<F%R>0!4:6UE<B!0;W)T`'1I;65R+F1E!
- XM=FEC90!!.B4M-&0@1CHE+31D($,Z)2TS9``@("4P,FQD.B4P,FQD.B4P,FQD5
- XM`"`@)7,@)3`R;&0M)3`R;&0M)3`R;&0`("`E<R`E,#)L9"XE,#)L9"XE,#)L,
- XM9``@("4P,FQD.B4P,FQD.B4P,FQD`$Y5``!(YP``2KD```!09P``$B!Y````4
- XM4"QY````/$ZN_HQ*N0```%YG```40?D```!0(D@L>0```#Q.KOX^2KD```!0S
- XM9P``%B\Y````4$ZY```+5%A/0KD```!02KD```!,9P``&"!Y````3"QY````E
- XM1$ZN_[A"N0```$Q,WP``3EU.=6%\0_D```-01?D`````M<EF#C(\`#)K"'0`Z
- XM(L)1R?_\(\\```!\+'@`!"/.````/$CG@(`(+@`$`2EG$$OZ``A.KO_B8`9"8
- XMI_-?3G-#^@`D3J[^:"/`````>&8,+CP``X`'3J[_E&`&3KD````04$].=61O_
- XM<RYL:6)R87)Y`$GY``!__DYU3E7_ZDCG(#`D;0`(0>T`$"9(.WQ$"/_V*TK_4
- XMZBM*__(K2O_N!JT``'___^XO"R\M``Q(;?_J3KD```NL)`!",B@`(`)/[P`,Z
- XM3-\,!$Y=3G5,[P,```0@"$H89OQ32!#99OQ.=4CG<``T`<3`)@%(0\;`2$-"=
- XM0]2#2$#`P4A`0D#0@DS?``Y.=4CG(#`F;P`0+PYP_RQY````/$ZN_K8L7R0`+
- XM#(#_____9@AP`$S?#`1.=2\.(CP``0`!<"(L>0```#Q.KO\Z+%\D0$J`9A0O+
- XM#B`"+'D````\3J[^L"Q?<`!@RB5+``H5;P`7``D5?``$``A"*@`.%4(`#R\.X
- XMD\DL>0```#Q.KO[:+%\E0``0(`MG$B\.(DHL>0```#Q.KOZ>+%]@#D'J`!0O^
- XM"$ZY```0REA/(`I@`/]V2.<`("1O``A*J@`*9Q`O#B)*+'D````\3J[^F"Q?5
- XM%7P`_P`()7S_____`!0O#G``$"H`#RQY````/$ZN_K`L7R\.<"(B2BQY````U
- XM/$ZN_RXL7TS?!`!.=4Y5_?1(YS\R)FT`""QM`!!^`"1M``P6$F8*(`=,WTS\G
- XM3EU.=5**#`,`)6=$)`<@4['K``1D#"!34I,0@W``$`-@$'``$`,O`"\+3KD`H
- XM`!$(4$\,@/____]G``2*4H(6$F8$(`)@ME**#`,`)6;`+@)X`"M\````(/_\S
- XM%AIP`!`#8&H(Q```8/((Q``!8.P(Q``"8.8(Q``#8.!-[@`$)"[__$J";`8(I
- XMQ```1((6&F!8*WP````P__QT`&`8(`+G@'(`$@/0@=""T((D``2"````,!8:_
- XM<``0`T'Y````C1`P``!(@`@```)FTF`<!$``(&><5T!GGE]`9Z!30&>*54!GY
- XM@%=`9ZI@L"M"__@D/```?<8,`P`N9F`6&@P#`"IF%DWN``0D+O_\2H)L!B0\1
- XM``!]QA8:8#)T`&`8(`+G@'(`$@/0@=""T((D``2"````,!8:<``0`T'Y````]
- XMC1`P``!(@`@```)FT@R"``!]QF<(*WP````@__PJ`@P#`&AF!@C$``=@%@P#`
- XM`&QF!@C$``9@"@P#`$QF!@C$``@6&BM*``QP`!`#8``!I&```S@(!``'9PQ-6
- XM[@`$(&[__#"'8!P(!``&9PQ-[@`$(&[__""'8`I-[@`$(&[__""'=`!@``&X(
- XM3>X`!"1N__PO"DZY```0N"0`#(4``'W&6$]G!K2%;P(D!6```9)-[@`$%B[_H
- XM_T'M_?@D2!"#=`%@``%\=`A@$`!$`$AV>'008`8(Q``$=`H,`P!89@A!^@*P3
- XM(`A@!D'Z`KD@""M`_?0(!``&9PI-[@`$+"[__&`8"`0`!&<*3>X`!"PN__Q@,
- XM"$WN``0L+O_\"`0`!&<*2H9L!D2&",0`!4'M__@D2`R%``!]QF8">@%*AF8$\
- XM2H5G("`&(@).N0``%!@@;?WT%3`(`"`&(@).N0``%"0L`&;@0>W_^)'*)`@(-
- XM!``#9VX,`P!O9A1*@F<*#!(`,&<(M(5M!"H"4H5@5`P#`'AG!@P#`%AF2$J"$
- XM9T0,$@`P9SZTA6P00>W]^K'*9`@5/``P4H)@[`@$``!F'`RM````,/_\9A(@*
- XM`E2`L*W_^&P(*BW_^%6%8,H5`Q4\`#!4@K2%;!!![?WXL<ID"!4\`#!2@F#L_
- XM8$P$0``E9P#^O@1``#-G`/[.!$``"V<`_J930&<`_L1;0&<`_KY;0&<`_CI3#
- XM0&<`_J130&<`_J)70&<`_EQ50&<`_J170&<`_I9@`/X4"`0`!&<H"`0`!6<&Z
- XM%3P`+6`:"`0``6<&%3P`*V`."`0``F<&%3P`(&`"4X)2@MZ""`0``&8``)0,%
- XMK0```##__&9$"`0`!&<^,`0"0``F9S8@4['K``1D#B!34I,0FG``$"K__V`0/
- XM<``0&B\`+PM.N0``$0A03PR`_____V<``,Y3K?_X4X)@-B!3L>L`!&00(%-2M
- XMDQ"M__]P`!`M__]@$G``$"W__R\`+PM.N0``$0A03PR`_____V<``))2AR`ME
- XM__A3K?_XL()NOBH"(`)3@DJ`9S`@4['K``1D#B!34I,0FG``$"K__V`0<``0O
- XM&B\`+PM.N0``$0A03PR`_____V=*8,@(!```9SXD!6`N(%.QZP`$9`X@4U*3H
- XM$+P`('``<"!@#DAX`"`O"TZY```1"%!/#(#_____9Q)2AR`M__A3K?_XL()NH
- XMQF``^S!P_V``^S0P,3(S-#4V-S@Y04)#1$5&`#`Q,C,T-38W.#EA8F-D968`3
- XM(&\`!"`(2AAF_%-(D<`@"$YU(&\`!""(6)!"J``$(4@`"$YU2.<`($'Y```!E
- XMCB1(+PI.N0``$I)83]7\````%D'Y```#1K7(9>9,WP0`3G5(YSP@)&\`&"@OV
- XM`!P@"F<``70T*@`,9P`!;`@"``EF``%D"`(``V8``5Q!Z@`,`E#O_4JJ``AFE
- XM'@R$_____V8(<`!,WP0\3G4O"DZY```4?C0J``Q83P@"``YF-B!2L>H`"&,@E
- XM2'@``2`2D*H`!"\`$"H`#DB`2,`O`$ZY```62D_O``PDJ@`((&H`$-'2)4@`8
- XM!`R$_____V8$=@!@`A8$(!*0J@`(*@`P`@)``*!G2`R$_____V<<(%)2DA"#%
- XM0>H`#`C0``8T$$'Z_PHCR````(!2A0R$_____V<,#`,`"F<&NJH`$&4$>/]@8
- XM#"52``1P`!`#8`#_3`@"``YG*DJ%9QXO!2\J``@0*@`.2(!(P"\`3KD``!<F2
- XML(5/[P`,9E!!Z@`,")``!@R$_____V82)*H`""5J``@`!'``$`-@`/\"0?K^<
- XMD"/(````@$'J``P(T``&)*H`""!J`!#1TB5(``0@4E*2$(-P`!`#8`#^U$'J=
- XM``P(Z``"``$E:@`(``0DJ@`(</]@`/ZZ3E7_]DCG."`D;0`(=``@"F<&2FH`N
- XM#&8*</],WP0<3EU.=0@J``$`#&8,+PI.N0``$W"$@%A/$"H`#DB`2,`O`$ZY1
- XM```:4H2`""H````-6$]G#"\J``A.N0``%/I83TIJ`!1G6$AZ`'1(;?_W3KD`5
- XM`!70."H`%'8`4$]P`#`$<@I.N0``$_X&@````#!R!Y*#0>W_]Q&`&`!(1$)$+
- XM2$2(_``*4H,,@P````5MSD(M__](;?_W3KD``!;J6$]"DD*J``1"J@`(0FH`H
- XM#$J"9P9P_V``_TAP`&``_T)435``2.<`("1O``@@"F9*0?D```&.)$A*:@`,6
- XM9R@P*@`,`D`""&8>2'C__R\*3KD``!$(#(#_____4$]F"'#_3-\$`$YUU?P`C
- XM```60?D```-&M<AEPG``8.9(>/__+PI.N0``$0A03V#62.=(`$*$2H!J!$2`8
- XM4D1*@6H&1($*1``!83Y*1&<"1(!,WP`22H!.=4CG2`!"A$J`:@1$@%)$2H%J-
- XM`D2!81H@`6#8+P%A$B`!(A]*@$YU+P%A!B(?2H!.=4CG,`!(04I!9B!(038!+
- XM-`!"0$A`@,,B`$A`,@*"PS`!0D%(04S?``Q.=4A!)@$B`$)!2$%(0$)`=`_06
- XM@-.!MH%B!)*#4D!1RO_R3-\`#$YU2.<@("1O``QT01`J``Y(@$C`+P!.N0``O
- XM%=Y*@%A/9P1T(6`*0?D```&ZM<AG&B5\```$```02'@$`$ZY```5?B5```A89
- XM3V84)7P````!`!!!Z@`/)4@`"#0\`(!!Z@`,<``P$#("2,&`@3"`)6H`"``$*
- XM)*H`"$S?!`1.=4CG`#(L;P`0E\LD>0```(1@#$'J``B]R&<.)DHD4B`*9O!,F
- XMWTP`3G4@"V<$)I)@!B/2````A"\.("H`!%"`(DHL>0```#Q.KO\N+%]@U$CG:
- XM`#`D>0```(1@&B92+PX@*@`$4(`B2BQY````/$ZN_RXL7R1+(`IFXD*Y````[
- XMA$S?#`!.=4CG("`D+P`,2H)F"'``3-\$!$YU+PYR`"`"4(`L>0```#Q.KO\ZC
- XM+%\D0$J`9@1P`<0?K_EB/(````B"2Y````A"5"``0CR@```(0@"E"`8+Q,Q
- XM[P,```0@"!#99OQ.=4CG("`D+P`,(`(B`..(T('CB"1`U?D```",2H)M#C!Y3
- XM```#1K'";P1*DF82(_P````#````D'#_3-\$!$YU+PX@`B(`XXC0@>.(('D`;
- XM``",(C`(`"QY````>$ZN_R@L7TJ`9P1P`6`"<`!@S$CG,"`D+P`03KD``!?F[
- XM(`(B`..(T('CB"1`U?D```",2H)M#C!Y```#1K'";P1*DF82(_P````#````^
- XMD'#_3-\$#$YU2.<P`B`O`"13@"8`)"\`("(2+'D```!X3J[_ODS?0`PF``R`P
- XM_____V88+PXL>0```'A.KO]\+%\CP````)!P_V"X2.<P`G8`=``B$BQY````T
- XM>$ZN_[Y,WT`,8)Y(YP`@)&\`""\.(@HL>0```'A.KO^X+%]*@&8<+PXL>0``"
- XM`'A.KO]\+%\CP````)!P_TS?!`!.=7``8/9(YS`P)"\`%"9O`!A.N0``%^8@;
- XM`B(`XXC0@>.()$#5^0```(Q*@FT.,'D```-&L<)O!$J29A(C_`````,```"0N
- XM</],WPP,3G4P*@`$`D```V8.(_P````&````D'#_8.((*@`#``1G&$CG,`)V!
- XM`70`(A(L>0```'A.KO^^3-]`#$CG,`(F+P`H)`LB$BQY````>$ZN_]!,WT`,6
- XM)@`,@/____]F&"\.+'D```!X3J[_?"Q?(\````"0</]@AB`#8()(YR``+PXB#
- XM/```$`!P`"QY````/$ZN_LXL7R0`"```#&<62KD```"49@@@`DS?``1.=4ZY%
- XM```8(G``8/!(YS`"=@1!^@`T)`@O`R\"+'D```!X3J[_Q"(`)!\F'RQY````^
- XM>$ZN_]!,WT`,2'@``4ZY```88EA/3G5>0PH`2KD```"89QH@>0```)@@:``$J
- XM3I`@>0```)@CT````)A@WDJY````@&<(('D```"`3I`O+P`$3KD``!BB6$].9
- XM=4CG,``F+P`,2KD```",9SYT`&`,+P).N0``&E)83U*",'D```-&L<)NZB\.B
- XM,#D```-&2,`B`..(T('CB")Y````C"QY````/$ZN_RXL7TJY````B&<(('D`2
- XM``"(3I!*N0```TQG%"\.(CD```-,+'D```!X3J[_IBQ?2KD```"<9PP@>0``.
- XM`)P@N0```*!*N0```*1G%"\.(GD```"D+'D````\3J[^8BQ?2KD```"H9Q0O0
- XM#B)Y````J"QY````/$ZN_F(L7TJY````K&<4+PXB>0```*PL>0```#Q.KOYB$
- XM+%]*N0```+!G%"\.(GD```"P+'D````\3J[^8BQ?2.<`!BQX``0(+@`$`2EGQ
- XM$$OZ``A.KO_B8`9"I_-?3G,J7TJY````M&9"2KD```"X9S@O#B`Y````O")Y+
- XM````N"QY````/$ZN_RXL7R\.(#D```#`Y8!8@")Y````Q"QY````/$ZN_RXLU
- XM7V`B+PXL>0```#Q.KO]\+%\O#B)Y````M"QY````/$ZN_H8L7R\.(GD```!X)
- XM+'D````\3J[^8BQ?(`,N>0```'Q.=4S?``Q.=4CG("`D+P`,(`(B`..(T('C\
- XMB"1`U?D```",2H)M#C!Y```#1K'";P1*DF82(_P````#````D'#_3-\$!$YU0
- XM,"H`!`)`@`!F$"\.(A(L>0```'A.KO_<+%]"DG``8-H```/L````20``````\
- XM``!@````@````+H```$&```!8@```6@```&&```!X````>H```*8```#&@``W
- XM`RX```,V```#6@```VX```-X```#U````^````0R```$1@``!)8```2@```$O
- XMM```!1(```5J```%>@``!8X```68```%T@``!BH```8Z```&3@``!E@```9L4
- XM```&A```!I(```:@```&J```!K(```;&```'&@``"6(```H````*5```"T@`!
- XM``OX```-F@``#DP```Y>```/M```#_```!`X```0<```$.P``!%4```1A```P
- XM$AP``!+````2U```$NH``!,````3%```$T@``!.<```3S@``%)0``!2Z```63
- XM5```%S0``!@:```85@``&)H``!BZ````*P````$````L```!<````9P```(\G
- XM```"2@```E````)@```":@```GX```*$```&T@``!MH```;N```'@@``!XP`Z
- XM``><```'P@``!]H```D<```))@``"5(```E<```):@``"7````EZ```)B@``C
- XM"9H```H6```,A@``#00``!#B```0^@``$WX``!.Z```4I```%?X``!9P```7H
- XM4```&,0``!C0```9`@``&0P``!IR````K`````(````<````9@```'````"&&
- XM````D````*````"J````P````,H```#4````V@```.H```#T```!#````18`4
- XM``$@```!)@```3````$V```!1@```5````%\```!C````:````&H```!K@``+
- XM`;0```&Z```!Q````<H```'2```!\@```?P```(&```"%````B8```(T```"!
- XM0@```E8```**```"I````JX```*X```"R````MP```+T```#C@```[(```/:W
- XM```$!```!!X```2````$K@``!F8```;````&Y```!P8```<@```')@``!S``4
- XM``<V```'0```!T8```=0```'8```!VH```>2```'H@``!Z@```>T```'X```3
- XM!_````?Z```(````"`@```DL```)-@``"4````E(```)@```":````FX```):
- XMP@``">P```JR```*V@``"O````L<```+-```"V@```N*```+G```$=8``!)0O
- XM```5!@``%2P``!4\```53@``%6(``!5T```5G```%;8``!6\```5Q@``%?0`!
- XM`!80```6*@``%C0``!9F```6@@``%J(``!:\```6R```%MP``!;X```7"@``-
- XM%Q8``!=&```78@``%WX``!>:```7M```%\X``!?:```7]@``&`H``!@T```8]
- XM1```&&0``!AL```8>```&'X``!B&```8C@``&*P``!C@```8Y@``&/(``!CZ$
- XM```9$@``&1X``!DF```9+```&3(``!D\```90@``&4X``!E8```97@``&6H`S
- XM`!ET```9>@``&88``!F0```9E@``&<0``!G,```9U@``&=P``!GB```9\```!
- XM&?H``!H````:$```&AX``!HD```:,@``&C@``!I&```::```&H0``!J@````E
- XM`````_(```/J````U`````0`"`````$!````````````````````````D@`!7
- XM`;``"`$`````````"`````````````````````````````````````````$`#
- XM````````````"!0```@8```('```""````@D```(*```""P```@P```(-```,
- XM"#@```@\```(0```"$0```A(`"`@("`@("`@(#`P,#`P("`@("`@("`@("`@X
- XM("`@("`@D$!`0$!`0$!`0$!`0$!`0`P,#`P,#`P,#`Q`0$!`0$!`"0D)"0D)^
- XM`0$!`0$!`0$!`0$!`0$!`0$!`0%`0$!`0$`*"@H*"@H"`@("`@("`@("`@("J
- XM`@("`@("`D!`0$`@````````````````````````````````````````````N
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````@````````$```````````````````0``0``(
- XM```!```````````````````$``(``````0``````````````````````````(
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM`````````````````````````````````````````````````````````````
- XM````````````````````````````````````````````````````````%```4
- XM```````````#[`````$````"````%`````\``````````````%0```!8````!
- XM7````&````!D````:````&P```!P````=````'@```!\````@````(0```"(8
- X4`````````_(```/K````,P```_)P[
- X``
- Xend
- Xsize 9020
- END_OF_FILE
- if test 12674 -ne `wc -c <'l/MSClock-Han.uu'`; then
- echo shar: \"'l/MSClock-Han.uu'\" unpacked with wrong size!
- fi
- # end of 'l/MSClock-Han.uu'
- fi
- if test ! -d 'source' ; then
- echo shar: Creating directory \"'source'\"
- mkdir 'source'
- fi
- if test -f 'source/MSClock-Handler.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/MSClock-Handler.c'\"
- else
- echo shar: Extracting \"'source/MSClock-Handler.c'\" \(7683 characters\)
- sed "s/^X//" >'source/MSClock-Handler.c' <<'END_OF_FILE'
- X/*
- X * MSClock-Handler.c (c) 12.02.91 by Martin Steppler
- X */
- X
- X// includes
- X
- X#include <stdio.h>
- X#include <libraries/dos.h>
- X#include <libraries/dosextens.h>
- X#include <devices/inputevent.h>
- X#include <devices/printer.h>
- X#include <devices/timer.h>
- X#include <devices/input.h>
- X#include <graphics/gfx.h>
- X#include <graphics/gfxbase.h>
- X#include <graphics/gfxmacros.h>
- X#include <intuition/intuition.h>
- X#include <intuition/intuitionbase.h>
- X#include <exec/exec.h>
- X#include <hardware/cia.h>
- X#include <functions.h>
- X
- X// prototypes
- X
- Xvoid ciao(void);
- X
- X// reference to the absolute address of ciab
- X
- Xextern struct CIA ciab;
- X
- X// defines
- X
- X#define SIG_CHANGE SIGBREAKF_CTRL_C
- X#define SIG_CLOSE SIGBREAKF_CTRL_D
- X#define CHILD_READY SIGBREAKF_CTRL_D
- X#define EOS 0
- X#define PORTNAME "Martin's Clock-Port"
- X
- Xstruct TheClock
- X{
- X struct MsgPort Port; // Global messageport.
- X BPTR Segment; // Pointer to handler segment.
- X LONG SegSize; // Size of TheClock structure.
- X struct Task *Father; // Calling process.
- X struct Task *Child; // Waiting process
- X int LeftEdge; // LeftEdge of our window
- X int Width; // Width of our window
- X int Online; // Online flag
- X int Flags; // display-flags
- X int FlagsBackup; // backup of the display-flags
- X int Status; // status-flag
- X};
- X
- X// globals
- X
- Xchar DateBuf[60];
- Xstruct TextAttr TopazText = { (UBYTE *)"topaz.font",8,0,0};
- Xstruct IntuiText TextPrint = { 0,1,JAM2,0,0,NULL,(UBYTE *)DateBuf,NULL};
- Xstruct NewWindow ClockWindow = { 146,1,432,8,1,0,EOS, BORDERLESS, NULL,NULL,EOS,NULL,NULL,0,0,0,0,WBENCHSCREEN};
- Xstruct Window *Window=NULL;
- Xstruct timerequest TimeReq;
- Xstruct MsgPort *TimerPort=NULL;
- Xstruct IntuitionBase *IntuitionBase;
- Xstruct GfxBase *GfxBase;
- Xstruct DosLibrary *DosBase;
- Xstruct TheClock *TheClock;
- X
- X /* _main():
- X *
- X * Modified Aztec C startup-routine, no CLI parsing,
- X * no Workbench parsing, absolutely nothing.
- X */
- X
- Xlong
- X_main()
- X{
- X register struct Process *ThatsMe = (struct Process *)FindTask(NULL);
- X register ULONG SignalSet;
- X char TempBuf[60];
- X char *Days[14]={ "Son","Mon","Die","Mit","Don","Fre","Sam",
- X "Sun","Mon","Tue","Wed","Thu","Fri","Sat" };
- X struct DateStamp Date;
- X long n,eng,Month,Day,Year,chip_free,fast_free,hh=0,mm=0,ss=0,lastsec=-1;
- X int i;
- X
- X // If somebody called us from CLI...
- X
- X if(ThatsMe -> pr_CLI) return(10);
- X
- X // Is the TheClock structure anywhere?
- X
- X if(!(TheClock = (struct TheClock *)FindPort(PORTNAME))) return(10);
- X
- X // open libraries
- X
- X if(!(IntuitionBase = OpenLibrary("intuition.library",0))) {
- X Signal(TheClock -> Father, CHILD_READY);
- X return(20);
- X }
- X if(!(GfxBase = OpenLibrary("graphics.library",0))) {
- X CloseLibrary(IntuitionBase);
- X Signal(TheClock -> Father, CHILD_READY);
- X return(20);
- X }
- X if(!(DosBase = OpenLibrary("dos.library",0))) {
- X CloseLibrary(GfxBase);
- X CloseLibrary(IntuitionBase);
- X Signal(TheClock -> Father, CHILD_READY);
- X return(20);
- X }
- X
- X if(TimerPort=(struct MsgPort *) CreatePort("Timer Port",0)) {
- X if(OpenDevice(TIMERNAME,UNIT_VBLANK,(struct IORequest *)&TimeReq,0)==(long)NULL) {
- X TimeReq.tr_node.io_Message.mn_ReplyPort=TimerPort;
- X TimeReq.tr_node.io_Command=TR_ADDREQUEST;
- X TimeReq.tr_node.io_Flags=0;
- X TimeReq.tr_node.io_Error=0;
- X TimeReq.tr_time.tv_secs=0;
- X TimeReq.tr_time.tv_micro=1000000; // delay
- X SendIO((struct IORequest *) &TimeReq.tr_node);
- X }
- X else ciao();
- X }
- X else ciao();
- X
- X TheClock -> Child = (struct Task *)FindTask(NULL);
- X TheClock -> Status = 1;
- X
- X // Go into infinite loop waiting for signals.
- X
- X FOREVER
- X {
- X if(TheClock -> Status == 1) { // switch clock on
- X TheClock -> Status = 2;
- X ClockWindow.LeftEdge = TheClock -> LeftEdge;
- X ClockWindow.Width = TheClock -> Width;
- X if(Window=(struct Window *) OpenWindow(&ClockWindow)) {
- X if(Window->IFont->tf_YSize>8) TextPrint.ITextFont=&TopazText;
- X TheClock->Status = 0;
- X }
- X else ciao();
- X
- X // Tell father to finish.
- X
- X Signal(TheClock -> Father, CHILD_READY);
- X }
- X if(!TheClock->Status) { // show mem, date, online-time and/or time
- X chip_free = AvailMem(MEMF_CHIP) >> 10;
- X fast_free = AvailMem(MEMF_FAST) >> 10;
- X DateStamp((struct DateStamp *)&Date) ;
- X n = Date.ds_Days - 2251;
- X Year = (4 * n + 3) / 1461;
- X n -= 1461 * Year / 4;
- X Year += 1984;
- X Month = (5 * n + 2) / 153;
- X Day = n - (153 * Month + 2) / 5 + 1;
- X Month += 3; n=TheClock->Flags;
- X if(Month>12) { Year++; Month -= 12; }
- X DateBuf[0]=EOS;
- X if(n & 4) sprintf(DateBuf, "A:%-4d F:%-4d C:%-3d", chip_free+fast_free, fast_free, chip_free);
- X if(n & 32) {
- X
- X // Check port a of cia b. Is there a carrier?
- X
- X if(!(ciab . ciapra & CIAF_COMCD)) // Online ?
- X {
- X if(!TheClock -> Online) { // Time reset
- X hh=mm=ss=0; TheClock -> Online = TRUE;
- X }
- X
- X // Increment time counter.
- X
- X if(lastsec != Date.ds_Tick/TICKS_PER_SECOND) {
- X lastsec = Date.ds_Tick/TICKS_PER_SECOND;
- X if(++ss == 60) {
- X ss=0; if(++mm == 60) { mm=0; ++hh; }
- X }
- X }
- X }
- X else TheClock -> Online = FALSE;
- X sprintf(TempBuf, " %02ld:%02ld:%02ld", hh, mm, ss);
- X strcat(DateBuf,TempBuf);
- X }
- X if(n & 2) {
- X eng = (n & 8) ? 7:0;
- X if(n & 16) sprintf(TempBuf, " %s %02ld-%02ld-%02ld", Days[(Day + Year + (Year - (Month < 3)) / 4 + 3 * Month - 2 * (Month > 2) - (Month - 1 - (Month > 8)) / 2 + 2) % 7 +eng], Month, Day, Year-1900);
- X else sprintf(TempBuf, " %s %02ld.%02ld.%02ld", Days[(Day + Year + (Year - (Month < 3)) / 4 + 3 * Month - 2 * (Month > 2) - (Month - 1 - (Month > 8)) / 2 + 2) % 7 +eng], Day, Month, Year-1900);
- X strcat(DateBuf,TempBuf);
- X }
- X if(n & 1) {
- X sprintf(TempBuf, " %02ld:%02ld:%02ld", Date.ds_Minute/60, Date.ds_Minute%60, Date.ds_Tick/TICKS_PER_SECOND);
- X strcat(DateBuf, TempBuf);
- X }
- X PrintIText(Window->RPort,&TextPrint, 0,0);
- X }
- X SignalSet = Wait(SIG_CLOSE | SIG_CHANGE | (1 << TimerPort->mp_SigBit));
- X if(SignalSet & SIG_CLOSE) {
- X ciao();
- X CloseLibrary(IntuitionBase);
- X CloseLibrary(GfxBase);
- X CloseLibrary(DosBase);
- X Forbid();
- X Signal(TheClock -> Father, CHILD_READY);
- X return(0);
- X }
- X else if(SignalSet & SIG_CHANGE) {
- X if(Window) { CloseWindow(Window); Window = NULL; }
- X TheClock->Flags = TheClock->FlagsBackup;
- X TheClock->Status = 1;
- X }
- X if(SignalSet & (1 << TimerPort->mp_SigBit)) {
- X if(GetMsg(TimerPort)) {
- X TimeReq.tr_time.tv_secs=0;
- X TimeReq.tr_time.tv_micro=1000000;
- X SendIO((struct IORequest *) &TimeReq.tr_node);
- X }
- X }
- X }
- X}
- Xvoid
- Xciao(void)
- X{
- X if(TimerPort) GetMsg(TimerPort);
- X if(TimeReq.tr_node.io_Message.mn_ReplyPort) CloseDevice((struct IORequest *)&TimeReq);
- X if(TimerPort) { DeletePort(TimerPort); TimerPort = NULL; }
- X if(Window) { CloseWindow(Window); Window = NULL; }
- X}
- END_OF_FILE
- if test 7683 -ne `wc -c <'source/MSClock-Handler.c'`; then
- echo shar: \"'source/MSClock-Handler.c'\" unpacked with wrong size!
- fi
- # end of 'source/MSClock-Handler.c'
- fi
- if test -f 'source/MSClock.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/MSClock.c'\"
- else
- echo shar: Extracting \"'source/MSClock.c'\" \(8715 characters\)
- sed "s/^X//" >'source/MSClock.c' <<'END_OF_FILE'
- X/*
- X * MSClock.c (c) by Martin Steppler 12.02.91
- X *
- X * Yet another clock utility for use with L:MSClock-Handler
- X */
- X
- X// includes
- X
- X#include <stdio.h>
- X#include <libraries/dos.h>
- X#include <devices/timer.h>
- X#include <devices/input.h>
- X#include <intuition/intuition.h>
- X#include <intuition/intuitionbase.h>
- X#include <exec/exec.h>
- X#include <functions.h>
- X
- X//defines
- X
- X#define SIG_CHANGE SIGBREAKF_CTRL_C
- X#define SIG_CLOSE SIGBREAKF_CTRL_D
- X#define CHILD_READY SIGBREAKF_CTRL_D
- X#define EOS 0
- X#define PORTNAME "Martin's Clock-Port"
- X#define WriteStdOut(str) Write(StdOut, str, (LONG)strlen(str))
- X
- X#define TIME_WIDTH 80
- X#define DATE_WIDTH 112
- X#define ONLINE_WIDTH 80
- X#define MEM_WIDTH 152
- X#define FRONTBACKGAD_WIDTH 62
- X
- X// prototypes
- X
- Xlong Chk_Abort() { return(0); }
- Xvoid main(int, char **);
- Xint GetWidth(int DefFlag);
- Xint GetOverscan(void);
- X
- X// globals
- X
- Xstruct TheClock
- X{
- X struct MsgPort Port; // Global messageport.
- X BPTR Segment; // Pointer to handler segment.
- X LONG SegSize; // Size of TheClock structure.
- X struct Task *Father; // Calling process.
- X struct Task *Child; // Waiting process
- X int LeftEdge; // LeftEdge of our window
- X int Width; // Width of our window
- X int Online; // online-flag
- X int Flags; // display-flags
- X int FlagsBackup; // backup of the display-flags
- X int Status; // status-flag
- X};
- X
- Xstruct IntuitionBase *IntuitionBase;
- Xstruct DosLibrary *DosBase;
- Xstruct TheClock *TheClock;
- X
- X// here we go ...
- X
- Xvoid
- Xmain(argc, argv)
- Xint argc;
- Xchar *argv[];
- X{
- X register struct Process *ThatsMe = (struct Process *)FindTask(NULL);
- X int DefFlag = 39; // display time, date, online time and mem
- X int i, quit=0, help=0;
- X BPTR StdOut = (BPTR)Open("*", MODE_OLDFILE);
- X
- X
- X // open libraries
- X
- X if(IntuitionBase = OpenLibrary("intuition.library",0)) {
- X if(DosBase = OpenLibrary("dos.library",0)) {
- X
- X // Is the TheClock structure anywhere?
- X
- X if(TheClock = (struct TheClock *)FindPort(PORTNAME)) DefFlag = TheClock->Flags;
- X for (i = 1; i < argc; i++) {
- X if(!strcmp(argv[i], "quit") || !strcmp(argv[i], "-q")) {
- X quit = 1;
- X break;
- X }
- X else if(!strcmp(argv[i], "-t")) { DefFlag = (DefFlag & 1) ? (DefFlag & 62):(DefFlag | 1); }
- X else if(!strcmp(argv[i], "-d")) { DefFlag = (DefFlag & 2) ? (DefFlag & 61):(DefFlag | 2); }
- X else if(!strcmp(argv[i], "-m")) { DefFlag = (DefFlag & 4) ? (DefFlag & 59):(DefFlag | 4); }
- X else if(!strcmp(argv[i], "-e")) { DefFlag = (DefFlag & 8) ? (DefFlag & 55):(DefFlag | 8); }
- X else if(!strcmp(argv[i], "-r")) { DefFlag = (DefFlag & 16) ? (DefFlag & 47):(DefFlag | 16); }
- X else if(!strcmp(argv[i], "-o")) { DefFlag = (DefFlag & 32) ? (DefFlag & 31):(DefFlag | 32); }
- X else { help = 1; break; }
- X }
- X if(help && StdOut) {
- X WriteStdOut("\33[1mMSClock V1.3\33[0m (c) 12.02.91 by Martin Steppler\n");
- X WriteStdOut("USAGE: MSClock [-t] [-d] [-m] [-e] [-r] [-q] [quit]\n");
- X WriteStdOut(" -t time off/on default: on\n");
- X WriteStdOut(" -d date off/on default: on\n");
- X WriteStdOut(" -m memory off/on default: on\n");
- X WriteStdOut(" -o online time off/on default: on\n");
- X WriteStdOut(" -e English weekdays on/off default: German on\n");
- X WriteStdOut(" -r reverse date display on/off default: off\n");
- X WriteStdOut(" -q quit MSClock\n");
- X }
- X else if(!TheClock && !quit) {
- X
- X // No, then Create Process
- X
- X if(TheClock = (struct TheClock *)AllocMem(sizeof(struct TheClock),MEMF_PUBLIC | MEMF_CLEAR)) {
- X
- X // Dummy MessagePort.
- X
- X TheClock -> Port . mp_Flags = PA_IGNORE;
- X TheClock -> Port . mp_Node . ln_Pri = 0;
- X TheClock -> Port . mp_Node . ln_Type= NT_MSGPORT;
- X TheClock -> Port . mp_Node . ln_Name= AllocMem(sizeof(PORTNAME),MEMF_PUBLIC);
- X TheClock -> Child = NULL;
- X TheClock -> Father = (struct Task *)ThatsMe;
- X TheClock -> SegSize = sizeof(struct TheClock);
- X TheClock -> Width = GetWidth(DefFlag);
- X TheClock -> LeftEdge = GetOverscan() - TheClock->Width;
- X TheClock -> Online = FALSE;
- X TheClock -> Flags = DefFlag;
- X TheClock -> FlagsBackup = DefFlag;
- X
- X // Init port.
- X
- X strcpy(TheClock -> Port . mp_Node . ln_Name,PORTNAME);
- X NewList(&TheClock -> Port . mp_MsgList);
- X
- X // Load the handler code.
- X
- X if(!(TheClock -> Segment = LoadSeg("MSClock-Handler")))
- X TheClock -> Segment = LoadSeg("L:MSClock-Handler");
- X if(!TheClock -> Segment)
- X {
- X FreeMem(TheClock -> Port . mp_Node . ln_Name,sizeof(PORTNAME));
- X FreeMem(TheClock,TheClock -> SegSize);
- X if(StdOut) WriteStdOut("Installation of \33[1mMartin Steppler's Clock\33[0m failed. Don't panic!\n");
- X }
- X else
- X {
- X // Install the port and start the handler.
- X
- X AddPort(&TheClock -> Port);
- X CreateProc("Martin's Clock", 5,TheClock -> Segment,4096);
- X
- X // Wait for child task to ring back...
- X
- X Wait(CHILD_READY);
- X if(!TheClock -> Child) // failed
- X {
- X RemPort(&TheClock -> Port);
- X FreeMem(TheClock -> Port . mp_Node . ln_Name,sizeof(PORTNAME));
- X if(TheClock -> Segment) UnLoadSeg(TheClock -> Segment);
- X FreeMem(TheClock,TheClock -> SegSize);
- X if(StdOut) WriteStdOut("Installation of \33[1mMartin Steppler's Clock\33[0m failed. Don't panic!\n");
- X }
- X else // Yeah, it works
- X if(StdOut) WriteStdOut("It is my pleasure to install \33[1mMartin Steppler's Clock\33[0m for you!\n");
- X }
- X }
- X }
- X else if(TheClock && quit) {
- X TheClock -> Father = (struct Task *)ThatsMe;
- X Signal(TheClock -> Child,SIG_CLOSE);
- X Wait(CHILD_READY);
- X
- X // Remove port and associated data.
- X
- X RemPort(&TheClock -> Port);
- X FreeMem(TheClock -> Port . mp_Node . ln_Name,sizeof(PORTNAME));
- X if(TheClock -> Segment) UnLoadSeg(TheClock -> Segment);
- X FreeMem(TheClock,TheClock -> SegSize);
- X if(StdOut) {
- X WriteStdOut("It is my satisfaction to close \33[1mMartin Steppler's Clock\33[0m again\n");
- X WriteStdOut("with the knowledge of a job well done!\n");
- X }
- X }
- X else if(TheClock) {
- X
- X // store changes and signal child
- X
- X TheClock->FlagsBackup = DefFlag;
- X TheClock->Width = GetWidth(DefFlag);
- X TheClock->LeftEdge = GetOverscan() - TheClock->Width;
- X TheClock -> Father = (struct Task *)ThatsMe;
- X Signal(TheClock -> Child,SIG_CHANGE);
- X Wait(CHILD_READY);
- X }
- X }
- X }
- X if(StdOut) Close(StdOut);
- X if(IntuitionBase) CloseLibrary(IntuitionBase);
- X if(DosBase) CloseLibrary(DosBase);
- X}
- X
- X// calculate width of our window
- X
- XGetWidth(int DefFlag)
- X{
- X int Width = 0;
- X
- X if(DefFlag & 1) Width+= TIME_WIDTH;
- X if(DefFlag & 2) Width+= DATE_WIDTH;
- X if(DefFlag & 4) Width+= MEM_WIDTH;
- X if(DefFlag & 32) Width+= ONLINE_WIDTH;
- X
- X // default width
- X
- X if(!Width) Width = TIME_WIDTH;
- X
- X return(Width);
- X}
- XGetOverscan(void)
- X{
- X register struct Screen *WBench;
- X register ULONG IntuiLock;
- X
- X // Start with the first one.
- X
- X IntuiLock = LockIBase(0L);
- X WBench = IntuitionBase -> FirstScreen;
- X UnlockIBase(IntuiLock);
- X
- X // Scan the list...
- X do
- X {
- X // The type we want?
- X
- X if((WBench -> Flags & SCREENTYPE) == WBENCHSCREEN)
- X return(WBench -> Width - FRONTBACKGAD_WIDTH);
- X }
- X while(WBench = WBench -> NextScreen);
- X
- X // Failed!
- X
- X return(640 - FRONTBACKGAD_WIDTH);
- X}
- END_OF_FILE
- if test 8715 -ne `wc -c <'source/MSClock.c'`; then
- echo shar: \"'source/MSClock.c'\" unpacked with wrong size!
- fi
- # end of 'source/MSClock.c'
- fi
- if test -f 'source/makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'source/makefile'\"
- else
- echo shar: Extracting \"'source/makefile'\" \(479 characters\)
- sed "s/^X//" >'source/makefile' <<'END_OF_FILE'
- X# makefile for MSClock with Aztec C 5.0d and SKShell
- X
- Xif [ MSClock-Handler.o -ot MSClock-Handler.c -o ! -f MSClock-Handler.o ]
- Xthen
- X echo "Compiling and linking $_ANSI_P3 MSClock-Handler.c $_ANSI_P1 "
- X cc -3 +D +L MSClock-Handler.c
- X ln +cdb +q -o l:MSClock-Handler MSClock-Handler.o -lcl
- Xfi
- Xif [ MSClock.o -ot MSClock.c -o ! -f MSClock.o ]
- Xthen
- X echo "Compiling and linking $_ANSI_P3 MSClock.c $_ANSI_P1 "
- X cc -wu MSClock.c
- X ln +cdb +q -o c:MSClock MSClock.o -lc
- Xfi
- END_OF_FILE
- if test 479 -ne `wc -c <'source/makefile'`; then
- echo shar: \"'source/makefile'\" unpacked with wrong size!
- fi
- # end of 'source/makefile'
- fi
- echo shar: End of archive 1 \(of 1\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have the archive.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
- Mail comments to the moderator at <amiga-request@uunet.uu.net>.
- Post requests for sources, and general discussion to comp.sys.amiga.misc.
-